var map;

$(function () {
	// 根据城市ID获取区县列表

	var cityCode = "110100";
	var cityName = "北京";
	if ($.session.get('hproper-id') != null){
		cityCode = $.session.get('hproper-id');
	}

	if ($.session.get('hproper') != null){
		cityName = $.session.get('hproper');
	}

	$('#areaType').html(getArea(cityCode));

	// 当天作为预约日期
	$('#reservationDay').val(getNowFormatDay());
	// 当前时间作为预约开始时间
	//$('#reservationStartTime').val(getNowFormatStartTime());
	// 下个整点作为预约结束时间
	//$('#reservationEndTime').val(getNowFormatEndTime());

	//$.session.set('vehicleType', "002");
	//$.session.set('reservationDay', getNowFormatDay());
	//$.session.set('reservationStartTime', getNowFormatStartTime());
	//$.session.set('reservationEndTime', getNowFormatEndTime());

	// 根据城市ID获取检测站列表
	//var result = selectStationListByCityCode(370100);
	//var stationList = result.data;

	// 设置页面左侧站点列表
	//$('#stationList').html(setStationList(stationList));
	$('#stationList').html('<li><div class="exhibition-none"><h5>请查询检测站!</h5></div></li>');

	// 百度地图API功能
	map = new BMap.Map("allmap");                            // 创建Map实例
	// 添加地图控制器
	var top_left_navigation = new BMap.NavigationControl();   // 左上角，添加默认缩放平移控件
	map.addControl(top_left_navigation);
	map.centerAndZoom(cityName,11);                             // 设置地图显示的城市 此项是必须设置的
	map.enableScrollWheelZoom(true);                          // 开启鼠标滚轮缩放

	// 在地图上追加检测站标注
	addShowMaker(stationList);

	// 查询检测站查询按钮
	$("#btnSearchStation").click(function() {

		// 获取预约日期
		var reservationDay = $('#reservationDay').val().replace("-","").replace("-","");
		// 预约开始时间
		var reservationStartTime = $('#reservationStartTime').val().replace(":","");
		// 预约结束时间
		var reservationEndTime = $('#reservationEndTime').val().replace(":","");

		// 预约日期为当天
		if ($('#reservationDay').val() == getNowFormatDay()){
			if (getNowFormatStartTime().replace(":","") != '' && reservationEndTime !='' && getNowFormatStartTime().replace(":","") > reservationEndTime){
				methods.alertx("预约结束时间不能早于当前时间！");
				return false;
			}
		}

		// 预约开始时间晚于预约结束时间时
		if (reservationStartTime != '' && reservationEndTime != '' && reservationStartTime > reservationEndTime){
            methods.alertx("预约结束时间不能早于预约开始时间！");
			return false;
		}

        // 获取页面的车辆类型
		var vehicleType = $('#smallCar').attr("data-id");
		if ($('#smallCar').attr("class") =="active"){
			vehicleType = $('#smallCar').attr("data-id");
		}else if ($('#overSizeVehicle').attr("class") =="active"){
			vehicleType = $('#overSizeVehicle').attr("data-id");
		}

		$.session.set('vehicleTypeId', vehicleType);
		$.session.set('reservationDay', $('#reservationDay').val());
		$.session.set('reservationStartTime', $('#reservationStartTime').val());
		$.session.set('reservationEndTime', $('#reservationEndTime').val());

		// 城市ID
		var cityCode = "110100";
		var cityName = "北京";
		if ($.session.get('hproper-id') != null){
			cityCode = $.session.get('hproper-id');
		}

		if ($.session.get('hproper') != null){
			cityName = $.session.get('hproper');
		}
		// 获取页面上选中的区县列表
		var areaCodeList = "";

		if (!$('#allArea').hasClass("active")){
			// 循环区县列表
			$('#areaType').find('li').each(
				function (){
					// 选中的区县
					if ($(this).hasClass("active")){
						// 获取该区县的数据
						var areaData =  JSON.parse($(this)[0].dataset.source)
						// 把区县ID放入区县列表中
						areaCodeList +=  areaData.id + ",";
					}
				}
			)
		}
		// 区县列表中数据存在时，去除最后一个逗号
		if (areaCodeList != ""){
			areaCodeList = areaCodeList.substr(0,areaCodeList.length-1);
		}

		// 根据页面选择获取检测站列表
		var result = selectStationList(vehicleType,cityCode,areaCodeList,reservationDay,reservationStartTime,reservationEndTime);
		var stationList = result.data;

		// 添加地图控制器
		var top_left_navigation = new BMap.NavigationControl();  // 左上角，添加默认缩放平移控件
		map.addControl(top_left_navigation);
		map.centerAndZoom(cityName,11);          // 设置地图显示的城市 此项是必须设置的
		map.enableScrollWheelZoom(true);       // 开启鼠标滚轮缩放
		map.clearOverlays();                    // 清除地图上所有的点

		// 在地图上追加检测站标注
		addShowMaker(stationList);
		// 设置页面左侧站点列表
		$('#stationList').html(setStationList(stationList));
	});

// 汽车类型
	$("#carType li").click(function () {

		var index = $(this).index();
		var cost = $('#carType li').eq(index).attr('data-cost');
		$('#cost').html(cost);
		setCarSelect(index);
	});
	// 地区
	$("#areaType li").click(function () {

		var index = $(this).index();
		// 点击的是全部时
		if(index == 0){
			// 除全部以外有未选中的区县时
			if(!$("#areaType li").eq(0).addClass("active").siblings().hasClass("active")){
				// 选中所有区县
				$("#areaType li").eq(0).addClass("active").siblings().addClass("active");
				// 所有区县全部选中时
			}else {
				// 除全部外，其余区县变为未选中
				$("#areaType li").eq(0).addClass("active").siblings().removeClass("active");
			}
			// 点击的是全部以外的区县
		}else {
			// 点击的区县是选中状态时
			if ($("#areaType li").eq(index).hasClass("active")){

				$("#areaType li").eq(index).removeClass("active");

				if (($("#areaType li").length) != $('#areaType').find("li[class = 'active']").length){
					$("#areaType li").eq(0).removeClass("active");
				}

				// 点击的区县是未选中状态
			}else{

				$("#areaType li").eq(index).addClass("active");

				if (($("#areaType li").length - 1) == $('#areaType').find("li[class = 'active']").length){
					$("#areaType li").eq(0).addClass("active");
				}else {
					$("#areaType li").eq(0).removeClass("active");
				}
			}
		}
	});



})

// 在地图上追加检测站标注
function addShowMaker(stationList){

	for( var i = 0 ;i < stationList.length; i++ ){
		// 标注点坐标（经纬度）
		var point = new BMap.Point(stationList[i]['longitude'],stationList[i]['latitude']);
		// 检测站ID
		var stationId = stationList[i]['stationid'];
		// 检测站名称
		var stationName = stationList[i]['stationname'];
		// 检车站图片
		var stationImage = stationList[i]['image'];
		// 检测站营业开始时间
		var businessStartTime = stationList[i]["businessstarttime"];
		// 检测站营业结束时间
		var businessEndTime = stationList[i]["businessendtime"];
		// 检测站电话
		var telephone = stationList[i]["telephone"];
		// 检测站地址
		var address = stationList[i]["address"];
		var pop = makeShowDiv(stationId,stationName,stationImage,businessStartTime,businessEndTime,telephone,address);
		addMarker(pop,point);
	}
}

// 创建地图标注
function addMarker(pop,point) {
	var marker = new BMap.Marker(point);
	// 注册点击事件
	marker.addEventListener("click", function (e) {
		openInfo(pop,e)
	})
	map.addOverlay(marker);
}

// 地图标注点击方法
function openInfo(pop,e){
	var p = e.target;
	var point = new BMap.Point(p.getPosition().lng, p.getPosition().lat);
	var infoWindow = new BMap.InfoWindow(pop);  // 创建信息窗口对象
	map.openInfoWindow(infoWindow,point);       //开启信息窗口
}

// 左侧检测站列表点击事件
function stationClick(station){
	// 获取点击的检测站信息
	var stationData = JSON.parse(station.dataset.source);
    // 在右侧地图上的标注点弹出信息
	leftStationShow(stationData)
}

// 右侧地图弹出检测站信息
function leftStationShow(stationData){
	// 标注点坐标（经纬度）
	var point = new BMap.Point(stationData.longitude,stationData.latitude);
	// 检测站ID
	var stationId = stationData.stationid;
	// 检测站名称
	var stationName = stationData.stationname;
	// 检测站图片
	var stationImage = stationData.image;
	// 检测站营业开始时间
	var businessStartTime = stationData.businessstarttime;
	// 检测站营业结束时间
	var businessEndTime = stationData.businessendtime;
	// 检测站电话
	var telephone = stationData.telephone;
	// 检测站地址
	var address = stationData.address;
	// 生成标注点弹出的页面信息
	var popHtml = makeShowDiv(stationId,stationName,stationImage,businessStartTime,businessEndTime,telephone,address);
	// 创建信息窗口对象
	var infoWindow = new BMap.InfoWindow(popHtml);
	// 开启信息窗口
	map.openInfoWindow(infoWindow,point);
}

// 根据城市ID获取区县列表
function getArea(cityId) {
	// Json文件中的全部区县信息
	var areaInfo = area;
	// 区县数组
	var areaArray = [];
	// 添加全部
	var varAreaHtml = '<li class = "active" id = "allArea">'+ '全部' + '</li>';
	// 获取该市的区县信息列表
	for (var i = 0; i < areaInfo.length; i++) {
		if (areaInfo[i]['pid'] == parseInt(cityId)) {
			areaArray.push(areaInfo[i]);
		}
	}
    // 拼接生成区县列表
	for (var j = 0; j < areaArray.length; j++) {
		// 区县名称
		var areaName = areaArray[j]['name'];
        // 区县名称过长时
		if (areaName.length > 5 ){
			areaName = areaName.substring(0,4) + "...";
		}
		varAreaHtml += '<li data-source = ' + JSON.stringify(areaArray[j]) + '>'+ areaName + '</li>'
	}
	return varAreaHtml;
}

// 获取当前日期并转化格式为YYYY-MM-DD
function getNowFormatDay() {
	// 当前日期
	var date = new Date();
	var seperator = "-";
	var year = date.getFullYear();
	var month = date.getMonth() + 1;
	var strDate = date.getDate();
	// 对月份进行补0
	if ( month >= 1 && month <= 9 ) {
		month = "0" + month;
	}
	// 对日进行补0
	if (strDate >= 0 && strDate <= 9) {
		strDate = "0" + strDate;
	}
	var currentDate = year + seperator + month + seperator + strDate;
	return currentDate;
}

// 获取当前时间并转化格式为YYYY-MM-DD
function getNowFormatStartTime() {
	var date = new Date();
	var seperator = ":";
	var hour = date.getHours();
	var minutes = date.getMinutes();
	// 对小时进行补0
	if (hour < 10){
		hour = "0" + hour;
	}
	// 对分钟进行补0
	if (minutes < 10){
		minutes = "0" + minutes;
	}

	var currentTime = hour + seperator + minutes;
	return currentTime;
}

// 获取下个整点并转化格式为HH:MM
function getNowFormatEndTime() {
	var date = new Date();
	var seperator = ":";
	var hour = date.getHours();
	// 对小时进行补0
	if (hour < 10){
		hour = "0" + hour;
	}
	var endTime = hour + seperator + "59";
	return endTime;
}

// 根据页面上的条件获取检测站列表
function selectStationList(vehicleType,cityCode,areaCodeList,reservationDay,reservationStartTime,reservationEndTime){
	var result = "";
	$.ajax({
		type:'post',
		url:'/searchStation/getStationListByCondition',
		data:{"vehicleType":vehicleType,"cityCode":cityCode,"areaCodeList":areaCodeList,"reservationDay":reservationDay,"reservationStartTime":reservationStartTime,"reservationEndTime":reservationEndTime},
		cache:false,
		dataType:'json',
		async:false,
		success:function(data){
			result = data;
		}
	});
	return result;
}

// 根据城市ID获取区县列表
function selectStationListByCityCode(cityCode){
	var result = "";
	$.ajax({
		type:'post',
		url:'/searchStation/getStationList',
		data:{"cityCode":cityCode},
		cache:false,
		dataType:'json',
		async:false,
		success:function(data){
			result = data;
		}
	});
	return result;
}

// 左侧检测站列表Html做成
function setStationList(stationList){

	var stationListHtml = '';

	if (stationList.length == 0) {
		stationListHtml = '<li><div class="exhibition-none"><h5>无符合条件的检测站,请重新查询！ </h5></div></li>';
	}else{

		for (var i = 0; i < stationList.length ; i++ ){

			var dataJson = '{stationId:'+ stationList[i]["stationid"] + ',stationname:'+ stationList[i]["stationname"] +
				',image:'+ stationList[i]["image"] + ',longitude:'+ stationList[i]["longitude"] +
				',latitude:'+ stationList[i]["latitude"] + ',businessstarttime:'+ stationList[i]["businessstarttime"] +
				',businessendtime:'+ stationList[i]["businessendtime"] + ',telephone:'+ stationList[i]["telephone"] +
				',address:'+ stationList[i]["address"] + '}'

			// stationListHtml = stationListHtml + '<li><div class="exhibition" onclick="stationClick(this)" data-source = '+ JSON.stringify(stationList[i]) +' id ="' + stationList[i]["stationid"] + '">' +
			stationListHtml = stationListHtml + '<li><div class="exhibition" onclick="stationClick(this)" data-source = '+ dataJson +' id ="' + stationList[i]["stationid"] + '">' +
				'<a href = "/stationDetail/init?stationId='+ stationList[i]["stationid"] + '"><h5>' + stationList[i]["stationname"] + '</h5></a>' +
				'<a href = "/stationDetail/init?stationId='+ stationList[i]["stationid"] +'"><img src="'+ stationList[i]["image"] +'" class="exhibition-img" alt="" /></a>'+
					//'<img src="' + stationList[i]["image"] + '" class="exhibition-img" alt="" />' +
				'<div class="exhibition-detail">'+
				'<p><label class = "stationLabel">营业时间: <span> '+ dataTimeFormat(stationList[i]["businessstarttime"]) +'-'+ dataTimeFormat(stationList[i]["businessendtime"])+ '</span> </label></p>'+
				'<p><label class = "stationLabel">联系电话: <span>'+ stationList[i]["telephone"] + '</span> </label></p>'+
				'<p><label class = "stationLabel">站点地址: <span>'+ stationList[i]["address"] +'</span> </label></p>'
			'</div></div></li>';
		}
	}

	return stationListHtml;
}

//// 根据预约开始时间设定预约结束时间
//function changeEndTime(){
//
//	// 预约开始时间
//	var reservationStartTime = $('#reservationStartTime').val().replace(":","");
//	// 预约结束时间
//	var reservationEndTime = $('#reservationEndTime').val().replace(":","");
//
//	if (reservationStartTime > reservationEndTime){
//		var startTime =  $('#reservationStartTime').val();
//		if (startTime != null && startTime.length == 5){
//			var startHour = startTime.substring(0,3);
//			var endTime = startHour + "59";
//			$('#reservationEndTime').val(endTime);
//		}
//	}
//}

// 右侧标注点弹出页面信息做成
function makeShowDiv(stationId,stationName,stationImage,businessStartTime,businessEndTime,telephone,address){

	var pop = '<div style="width: 500px;height: 170px;padding:15px" id="modal">' +
		'<h4 style="color: #155c90;margin-bottom: 5px;">' + stationName + '</h4>'+
		'<img src=" '+ stationImage + ' " style="width: 139px;height: 132px;float:left;" alt="" />'+
		'<div style="  float:left;margin-left:15px;border-bottom: 1px solid #dddddd;width:345px;">'+
		'<p style="line-height: 25px;font-size: 14px;color:#454545;"><label>营业时间: <span>'+ dataTimeFormat(businessStartTime)+'-' + dataTimeFormat(businessEndTime) + '</span> </label></p>'+
		'<p style="line-height: 25px;font-size: 14px;color:#454545;"><label>支付方式: <span><img src="/img/zfb.png" alt="" style="margin-right:10px;" /><img  style="margin-right:10px;" src="/img/wx.png" alt="" /><img  style="margin-right:10px;" src="/img/yl.png" alt="" /></span> </label></p>'	+
		'<p style="line-height: 25px;font-size: 14px;color:#454545;"><label>联系电话: <span>'+ telephone + '</span> </label></p>'+
		'<p style="line-height: 25px;font-size: 14px;color:#454545;"><label>站点地址: <span>'+ address + '</span> </label></p>'+
		'</div>'+
		'<div style="text-align: center;width: 345px;height: 30px;">'+
		'<div style = "display:block; float:left; background: #e35b00; width: 100px;height: 30px;position: absolute;left:50%;,margin-left:-123px; bottom:15px; line-height: 30px;">'+
		'<a style = "display:block; color:#ffffff;" href = "/stationDetail/init?stationId='+ stationId +'">去预约</a>'+
		'</div></div></div>';
	return pop;
}

// 对时间进行格式化
function dataTimeFormat(dataTime){

    var resultTime  = dataTime;
	if(dataTime.length == 4){
		resultTime = dataTime.substring(0,2) + ":" + dataTime.substring(2,4);
	}
	return resultTime;
}

function setCarSelect(index){
	var $li = $("#carType li");
	$li.eq(index).addClass("active").siblings().removeClass("active");
	var _img = $li.eq(index).children( "img");
	var currentSrc = $(_img).attr("src");
	if(!(currentSrc.indexOf("_select") > -1)){
		_img.attr("src",currentSrc.split(".")[0]+"_select.png");
		var src_img = $li.eq(index).siblings().children("img");
		for(var i= 0; i< src_img.length;i++){
			var src =$(src_img[i]).attr("src");
			if(src.indexOf("_") > -1){
				$(src_img[i]).attr("src",src.split("_")[0]+".png");
			}
		}
	}
}

//// 根据预约日期对预约开始时间进行限定
//function pickedFunc(){
//	// 预约日期是今天时
//	if ($('#reservationDay').val()==getNowFormatDay()) {
//
//		// 预约开始时间
//		var reservationStartTime = $('#reservationStartTime').val().replace(":","");
//		// 预约结束时间
//		var reservationEndTime = $('#reservationEndTime').val().replace(":","");
//
//		$('#reservationStartTime').val(getNowFormatStartTime());
//		$('#reservationEndTime').val(getNowFormatEndTime());
//
//		//$('#reservationStartTime').attr("onclick","WdatePicker({dateFmt:'H:mm',errDealMode:1,minDate:'%H:%m'})");
//	}
//	//}else{
//    //
//	//	$('#reservationStartTime').attr("onclick","WdatePicker({dateFmt:'H:mm'})");
//	//}
//}